package com.shuma.product.config;

import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RedissonConfig {
    /*Bean定义方法：@Bean注解标记的方法用于定义一个Bean的实例。在方法体内，你可以通过构造函数或其他方式创建Bean的实例，并返回该实例。
    注册到容器：@Bean注解告诉Spring容器，当需要获取该Bean时，通过调用对应的Bean定义方法来创建该Bean的实例，并将其纳入Spring容器中。
    自动装配：通过@Bean注解注册的Bean可以被Spring的自动装配机制所使用。如果其他组件需要依赖这个Bean，Spring会自动将它注入到需要的地方。
    Bean的名称：默认情况下，@Bean注解的方法名将被用作Bean的名称，也可以通过name属性指定Bean的名称。*/
    @Bean
    public RedissonClient redissonClient(){
        //配置 实现可重入可重试
        Config config = new Config();
        config.useSingleServer().setAddress("redis://127.0.0.1:6379");
        return Redisson.create(config);
    }

    //添加多个redis实现多个锁，再次开始请开启服务
    /*@Bean
    public RedissonClient redissonClient2(){
        //配置 实现可重入可重试
        Config config = new Config();
        config.useSingleServer().setAddress("redis://127.0.0.1:6380");
        return Redisson.create(config);
    }

    @Bean
    public RedissonClient redissonClient3(){
        //配置 实现可重入可重试
        Config config = new Config();
        config.useSingleServer().setAddress("redis://127.0.0.1:6381");
        return Redisson.create(config);
    }*/
}
